As computing devices become more prevalent, and as more devices become connected to the internet, network throughput and/or bitrate optimization is becoming more important. Most throughput and/or bitrate optimization technologies are implemented on the network operator's end, such as by optimizing the physical network design and/or network topology or by optimizing how data flows to network consumers. However, most throughput and/or bitrate optimization technologies are not implemented at the network consumer's end.
Additionally, most network consumers are usually offered a subscription or data plan that is expressed as a maximum data transfer rate in bits per second. For example, when a user subscribes to a 100 Megabit per second (Mbps) plan, not only does the user often get a lower data transfer rate, especially during peak usage times, but the subscription usually does not guarantee lagless or seemingly delay free data streaming. The reasons for this are based on the physical network design and/or network topology. For example, various cables and/or wires used to communicate data have a finite length and diameter, which limits the amount of data that may be transferred over the cables and/or wires. Furthermore, with wireless networks, network congestion and/or environmental factors often limit the amount of data that may be transferred to a computing device. Current techniques for mitigating network congestion or otherwise allocating network resources include the use of complex algorithms for managing traffic, such as monitoring traffic types, shifting network resources between subscribers, prioritizing the allocation of network resources to traffic types that are more sensitive to delays, and/or collision avoidance schemes.
However, the current techniques for mitigating network congestion or otherwise allocating network resources do not typically account for a user's experience and/or interaction with user context when adjusting or allocating network resources.